/**
 * @author
 * @createtime
 * @class DictionaryForm
 * @extends Ext.Window
 * @description DictionaryForm表单
 * @company 掌新软件
 */
DictionaryForm = Ext.extend(Ext.Window, {
			// 内嵌FormPanel
			formPanel : null,
			// 构造函数
			constructor : function(_cfg) {
				Ext.apply(this, _cfg);
				// 必须先初始化组件
				this.initUIComponents();
				DictionaryForm.superclass.constructor.call(this, {
							layout : 'fit',
							id : 'DictionaryFormWin',
							iconCls : 'menu-dictionary',
							items : this.formPanel,
							title : '字典详细信息',
							width : 380,
							height : 250,
							modal : true,
							buttonAlign : 'center',
							buttons : this.buttons,
							keys : {
								key : Ext.EventObject.ENTER,
								fn : this.save,
								scope : this
							}
						});
			},// end of the constructor
			// 初始化组件
			initUIComponents : function() {
				var _url = __ctxPath + '/system/treeDictionary.do';
				// var dicSelector = new TreeSelector('dicSelector', _url, '父级',
				// 'parentDictId');
				this.formPanel = new Ext.FormPanel({
							url : __ctxPath + '/system/saveDictionary.do',
							layout : 'form',
							id : 'DictionaryForm',
							bodyStyle : 'padding:5px',
							border : false,
							formId : 'DictionaryFormId',
							defaultType : 'textfield',
							defaults : {
								anchor : '98%,98%'
							},
							items : [{
										name : 'parentDictId',
										xtype : 'hidden'
									}, {
										name : 'dictionary.dicId',
										xtype : 'hidden',
										value : this.dicId == null
												? ''
												: this.dicId
									}, {
										xtype : 'hidden',
										value : this.parentId,
										name : 'parentId'
									}, {
										xtype : 'hidden',
										name : 'dictionary.itemName',
										value : this.typeName
									}, {
										xtype : 'hidden',
										name : 'dictionary.sn',
										value : 0
									}, {
										fieldLabel : '所属分类',
										xtype : 'displayfield',
										value : this.typeName
									}, {
										fieldLabel : '数值',
										name : 'dictionary.itemValue',
										allowBlank : false
									}, {
										fieldLabel : '代码',
										name : 'dictionary.code'
									}, {
										fieldLabel : '备注',
										name : 'dictionary.descp',
										xtype : 'textarea'
									}
							]
						});

				if (this.dicId != null && this.dicId != 'undefined') {
					this.formPanel.getForm().load({
						deferredRender : false,
						url : __ctxPath + '/system/getDictionary.do?dicId='
								+ this.dicId,
						waitMsg : '正在载入数据...',
						success : function(form, action) {
							var dict = Ext.getCmp('parentDictId');
							//var dicSel = Ext.getCmp('dicSelector');
							var result = Ext.util.JSON.decode(form.responseText);
							var dicid = result.data.proTypeId.dicId;
							var dicname = result.data.proTypeId.itemValue;
							dict.setValue(dicid);
							//dicSel.setValue(dicname);
						},
						failure : function(form, action) {
							// Ext.Msg.alert('编辑', '载入失败');
						}
					});
				};
				// 初始化功能按钮
				this.buttons = [{
							text : '保存',
							iconCls : 'btn-save',
							scope : this,
							handler : this.save
						}, {
							text : '重置',
							iconCls : 'btn-reset',
							scope : this,
							handler : this.reset
						}, {
							text : '取消',
							iconCls : 'btn-cancel',
							scope : this,
							handler : this.cancel
						}];
			},// end of the initcomponents
			// 重置
			reset : function() {
				this.formPanel.getForm().reset();
			},
			// 取消
			cancel : function() {
				this.close();
			},
			// 保存记录
			save : function() {
				var me = this;
				if (this.formPanel.getForm().isValid()) {
					this.formPanel.getForm().submit({
								method : 'POST',
								waitMsg : '正在提交数据...',
								success : function(fp, action) {
									Ext.ux.Toast.msg('操作信息', '成功保存信息！');
									if (me.callback) {
										me.callback.call(this);
									}
									me.close();
								},
								failure : function(fp, action) {
									Ext.MessageBox.show({
												title : '操作信息',
												msg : '信息保存出错，请联系管理员！',
												buttons : Ext.MessageBox.OK,
												icon : Ext.MessageBox.ERROR
											});
									me.close();
								}
							});
				}
			}
		});
